package com.example.springboottestgit.controller.main;

/**
 * @description:
 * @author: ZZZ
 */

import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.net.HttpURLConnection;
import java.net.URL;

public class DownloadPicture {
    int n = 0;

    public static void main(String[] args) {
//        String imageUrl = "https://d168r5mdg5gtkq.cloudfront.net/medpix/img/full/synpic100377.jpg";
//        String savePath = "C:\\Users\\user\\Desktop\\Mauville-MedCLIP\\MedCLIP\\datav2\\output\\synpic100377.jpg";
//
//        try {
//            downloadPicture(imageUrl, savePath);
//        } catch (IOException e) {
//            e.printStackTrace();
//        }
    }

    //@Async("myAsync")
    public void downloadPicture(String imageUrl, String savePath) throws IOException {
        URL url = new URL(imageUrl);
        HttpURLConnection connection = (HttpURLConnection) url.openConnection();
        connection.setRequestMethod("GET");
        connection.connect();

        int responseCode = connection.getResponseCode();
        if (responseCode == HttpURLConnection.HTTP_OK) {
            BufferedInputStream in = new BufferedInputStream(connection.getInputStream());
            FileOutputStream out = new FileOutputStream(new File(savePath));

            byte[] buffer = new byte[1024];
            int bytesRead;
            while ((bytesRead = in.read(buffer)) != -1) {
                out.write(buffer, 0, bytesRead);
            }

            // 下载完成，关闭输入输出流
            in.close();
            out.close();
            connection.disconnect();

            System.out.println("图片下载成功，保存路径：" + savePath);
            System.out.println(n++);
        } else {
            System.out.println("无法下载图片，响应码：" + responseCode);
        }
    }
}

